package controllers

// 图片处理
import (
	"time"

	"gitee.com/yinxulai/PrivateToolServer/services/workqueue"

	"gitee.com/yinxulai/PrivateToolServer/restful/restmodels"
	"gitee.com/yinxulai/PrivateToolServer/services/fileinn"
	"gitee.com/yinxulai/PrivateToolServer/services/imgsquash"
	"github.com/kataras/iris"
)

// Squash 图片压缩
func Squash(ctx iris.Context) {
	var err error
	// 处理参数
	maxSize := ctx.Application().ConfigurationReadOnly().GetPostMaxMemory()
	err = ctx.Request().ParseMultipartForm(maxSize)
	if err != nil {
		ctx.JSON(restmodels.Error{Status: 500, Message: err.Error()})
		return
	}
	// 第一步 获取文件列表 并保存到fileinn系统
	form := ctx.Request().MultipartForm
	filelist := form.File["file"]
	var FileList []*fileinn.File
	for _, fileh := range filelist {
		file, err := fileinn.SaveFileHeader(fileh, time.Minute*10)
		if err != nil {
			ctx.JSON(restmodels.Error{Status: 500, Message: err.Error()})
			return
		}
		FileList = append(FileList, file)
	}

	//第二部添加到任务队列
	queue := make(map[string]*fileinn.File)
	for _, file := range FileList {
		work := workqueue.Work{} //创建一个Work
		work.ID = file.Hash
		work.Type = imgsquash.WorkType
		work.Matter = imgsquash.Matter{Input: *file, Quality: 75} //创建一个课题
		queue[workqueue.Push(work)] = file
	}
	//发送任务的队列
	ctx.JSON(queue)
}

// PullSquash 获取图片压缩的结果
func PullSquash(ctx iris.Context) {

}

// Convert  图片格式转换
func Convert(ctx iris.Context) {}

// PullConvert 获取图片转换的结果
func PullConvert(ctx iris.Context) {}

// Detect 检查任务状态
func Detect(ctx iris.Context) {

}
